﻿using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;

namespace CCL.Utility
{
    /// <summary>
    /// 파일 유틸리티를 제공합니다.
    /// </summary>
    public static class FileUtility
    {
        /// <summary>
        /// 파일을 ByteArray로 변환합니다.
        /// </summary>
        public static byte[] FileToBytes(string srcFilePath)
        {
            int fileSize;
            byte[] retVal;
            using (FileStream fs = new FileStream(srcFilePath, FileMode.Open, FileAccess.Read))
            {
                fileSize = Convert.ToInt32(fs.Length);
                BinaryReader br = new BinaryReader(fs);
                retVal = br.ReadBytes(fileSize);

                br.Dispose();
            }
            return retVal;
        }

        /// <summary>
        /// ByteArray를 파일로 변환합니다.
        /// </summary>
        public static void BytesToFile(byte[] fileBytes, string destFilePath)
        {
            string dirPath = "";

            string[] pathList = destFilePath.Split('\\');
            for (int i = 0; i < pathList.Length - 1; i++)
            {
                dirPath += pathList[i] + "\\";
            }

            if (!Directory.Exists(dirPath))
                Directory.CreateDirectory(dirPath);

            if (File.Exists(destFilePath))
                File.Delete(destFilePath);

            FileStream file = new FileStream(destFilePath, FileMode.Create);
            file.Write(fileBytes, 0, fileBytes.Length);
            file.Close();
        }
    }
}
